# -*- coding: utf-8 -*-
# @Time    : 2020/7/16 14:01
# @Author  : ZhaoHexin
# @File    : BasicMethod.py
# @Description  : 基础加解密逻辑

import binascii
from pyDes import des, PAD_PKCS5


class BasicMethod:
    def __init__(self):
        self.secret_key = 'edmundzy'

    def des_encrypt(self, s):
        """
        DES 加密
        :param s: 原始字符串
        :return: 加密后字符串，16进制
        """

        k = des(self.secret_key, pad=None, padmode=PAD_PKCS5)
        en = k.encrypt(s)
        list_en = [x for x in en]
        text = ""
        # 进行数据整理及拼接
        for i in list_en:
            # 转成16进制并进行拼接
            # 如果小于16 则前边加0
            text += "0" + hex(i).replace("0x", "") if i < 16 else hex(i).replace("0x", "")
        return text

    def des_descrypt(self, s):
        """
        DES 解密
        :param s: 加密后的字符串，16进制
        :return: 解密后的字符串
        """
        k = des(self.secret_key, padmode=PAD_PKCS5)
        de = k.decrypt(binascii.a2b_hex(s))
        return str(de, "utf-8")
